Crate kitsune_p2p
source ·Expand description
P2p / dht communication framework.
§TLS session key logging
To use a tool like wireshark to debug kitsune QUIC communications, enable keylogging via tuning_param:
tuning_params.danger_tls_keylog = "env_keylog".to_string();
The tuning param by itself will do nothing, you also must specify
the file target via the environment variable SSLKEYLOGFILE
, e.g.:
SSLKEYLOGFILE="$(pwd)/keylog" my-kitsune-executable
As QUIC support within wireshark is in-progress, you’ll need a newer
version. This documentation was tested with version 3.6.2
.
Tell wireshark about your keylog file at:
[Edit] -> [Preferences...] -> [Protocols] -> [TLS] -> [(Pre)-Master-Secret log filename]
Your capture should now include QUIC
protocol packets, where the
Protected Payload
variants will be able to display internals,
such as STREAM([id])
decrypted content.
Also see https://github.com/quiclog/pcap2qlog
Re-exports§
pub use gossip::sharded_gossip::KitsuneDiagnostics;
pub use kitsune_p2p_types::dht;
pub use kitsune_p2p_types::dht_arc;
Modules§
- Definitions related to the KitsuneP2p peer-to-peer / dht communications actor.
- Data structures to be stored in the agent/peer database.
- re-exported dependencies
- Definitions for events emited from the KitsuneP2p actor.
- Various gossip strategies for Kitsune.
- metrics tracked by kitsune_p2p spaces
- KitsuneP2p Wire Protocol Encoding Decoding
Structs§
- A HostApi paired with a ghost_actor sender (legacy) When all legacy functions have been moved to the API, this type can be replaced by
HostApi
. - Distinguish multiple agents within the same network module.
- The basis hash/coordinate when identifying a neighborhood.
- The op data with its location
- Top-level “KitsuneDataHash” items are buckets of related meta-data. These metadata “Operations” each also have unique OpHashes.
- A cryptographic signature.
- Distinguish multiple categories of communication within the same network module.
- A 32 byte cert identifying a peer
- Host-defined data used to implement custom connection preflight checks.
Enums§
- The type of gossip module running this gossip.
- KitsuneP2p Error Type.
Constants§
- This value determines protocol compatibility. Any time there is a protocol breaking change, this number must be incremented.
Traits§
- Kitsune hashes are expected to be 36 bytes. The first 32 bytes are the proper hash. The final 4 bytes are a hash-of-the-hash that can be treated like a u32 “location”.
- The interface to be implemented by the host, which handles various requests for data
Functions§
- Spawn a new KitsuneP2p actor.
Type Aliases§
- Trait object for the host interface
- Convenience type
- A boxed future result with dynamic error type
- Result Type